package org.fly.jingwei.dao;

import org.fly.jingwei.entity.SlaveEntity;
import org.pentaho.big.data.impl.cluster.NamedClusterImpl;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author leo
 * @date 2017/6/15
 */
@Repository
public interface HadoopClusterDao {
    /**
     * 添加集群信息
     *
     * @param attrId
     * @param elementId
     * @param attrParId
     * @param attrKey
     * @param attrValue
     */
    void addCluster(Integer attrId, Integer elementId, Integer attrParId, String attrKey, String attrValue);

    /**
     * @return
     */
    List<NamedClusterImpl> allCluster();

    /**
     * 获取集群
     *
     * @param clusterName
     * @return
     */
    NamedClusterImpl getClusterByName(String clusterName);

    /**
     * @return
     */
    List<SlaveEntity> getClusters();

    /**
     * @param map
     */
    void addClusterEle(Map<String, Object> map);

    /**
     * @param tableName
     * @param field
     * @return
     */
    Integer getNextId(String tableName, String field);

    /**
     * @param elementId
     */
    void deleteEle(Integer elementId);

    /**
     * @param elementId
     */
    void deleteEleAttr(Integer elementId);

    /**
     * @param clusterName
     * @return
     */
    Integer getEleIdByClusterName(String clusterName);

    /**
     * @param element
     */
    void updateEle(Map<String, Object> element);

    /**
     * @param eleAttr
     */
    void updateEleAttr(Map<String, Object> eleAttr);
}
